//导入express框架
const express = require('express')
//使用express框架的路由
const router = express.Router()
//导入expressJoi
const expressJoi = require('@escook/express-joi')
//导入userinfo的路由处理模块
const userinfoHandler = require('../router_handle/userinfo.js')

const {
	password_limit,
	name_limit,
	email_limit,
	forgetPassword_limit,

} = require('../limit/user.js')

//上传头像
router.post('/uploadAvatar', userinfoHandler.uploadAvatar)

//把头像绑定账号
router.post('/bindAccount', userinfoHandler.bindAccount)
//修改用户密码
router.post('/changePassword', expressJoi(password_limit), userinfoHandler.changePassword)
//获取用户信息
router.post('/getUserInfo', userinfoHandler.getUserInfo)

//修改用户名
router.post('/changeName', expressJoi(name_limit), userinfoHandler.changeName)
//修改用户性别
router.post('/changeSex', userinfoHandler.changeSex)
//修改用户邮箱
router.post('/changeEmail', expressJoi(email_limit), userinfoHandler.changeEmail)

//验证账号和邮箱
router.post('/verifyAccountAndEmail', userinfoHandler.verifyAccountAndEmail)
//登录页面中修改密码
router.post('/changePasswordInLogin', expressJoi(forgetPassword_limit),userinfoHandler.changePasswordInLogin)

//--------------------用户管理------------

//添加管理员
router.post('/createAdim', userinfoHandler.createAdim)

//获取管理员列表
router.post('/getAdimList', userinfoHandler.getAdimList)


//修改管理员信息
router.post('/editAdim', userinfoHandler.editAdim)

//管理员降为普通用户 接口
router.post('/changeIdentityToUser', userinfoHandler.changeIdentityToUser)

//普通用户赋权的接口
router.post('/changeIdentityToAdmin', userinfoHandler.changeIdentityToAdmin)

//通过账号对用户进行搜索
router.post('/searchUser', userinfoHandler.searchUser)

//冻结用户账号
router.post('/banUser', userinfoHandler.banUser)
//解冻用户账号
router.post('/hotUser', userinfoHandler.hotUser)
//获取冻结用户列表
router.post('/getBanList', userinfoHandler.getBanList)
//删除用户的接口
router.post('/deleteUser', userinfoHandler.deleteUser)

//通过部门对用户进行搜索的接口  参数department
router.post('/searchDepartment', userinfoHandler.searchDepartment)

//获取对应身份的总人数  参数 identity
router.post('/getAdminListLength', userinfoHandler.getAdminListLength)

//监听换页 返回数据 参数是页码 pager  identity
router.post('/returnListData', userinfoHandler.returnListData)



//向外暴露路由
module.exports = router